<template>
  <div class="search-history">
    <van-cell title="搜索历史">
      <template v-if="isDeleteShow">
        <span @click="$emit('clear-search-histories')">全部删除</span>
        &nbsp;&nbsp;
        <span @click="isDeleteShow = false">完成</span>
      </template>
      <van-icon v-else name="delete" @click="isDeleteShow = true"/>
    </van-cell>
    <van-cell
      :title="item"
      v-for="(item, index) in searchHistories"
      :key="index"
      @click="onHistoryClick(item, index)"
    >
      <van-icon v-if="isDeleteShow" name="close"></van-icon>
    </van-cell>
  </div>

</template>

<script>
/*
  目标5：历史记录的添加和展示
  1. 当输入框的内容触发查询结果时，会将该内容添加到查询历史数组里 （onSearch方法）
  2. 如果原来的查询历史数组中有这个值 ，那么将该元素的位置放到数组的最前面（索引为1的位置）
*/
export default {
  name: 'SearchHistory',
  props: {
    searchHistories: {
      type: Array,
      default: () => []
    }
  },
  data () {
    return {
      // 在 data 中添加一个数据用来控制删除相关元素的显示状态
      isDeleteShow: false,
      searchHistoriesClone: this.searchHistories
    }
  },
  methods: {
    onHistoryClick (item, index) {
      if (this.isDeleteShow) {
        // 删除状态，删除历史记录数据
        this.searchHistoriesClone.splice(index, 1)
      } else {
        // 非删除状态，直接进入搜索
        this.$emit('search', item)
      }
    }
  }
}
</script>

<style scoped lang="less"></style>
